"""
pytest配置文件
"""
import os
import pytest
from datetime import datetime
from tests.config.config import REPORTS_DIR


def pytest_configure(config):
    """配置pytest运行环境"""
    # 创建报告目录
    if not os.path.exists(REPORTS_DIR):
        os.makedirs(REPORTS_DIR)
        

def pytest_html_report_title(report):
    """设置HTML报告标题"""
    report.title = "自动化测试报告"


def pytest_runtest_setup(item):
    """测试用例开始前的操作"""
    print(f"\n准备开始测试: {item.name}")
    

def pytest_addoption(parser):
    """添加命令行选项"""
    parser.addoption("--browser", action="store", default="chrome",
                     help="指定浏览器: chrome, firefox, edge")
    parser.addoption("--headless", action="store_true", default=False,
                     help="以无头模式运行浏览器")
    parser.addoption("--url", action="store",
                     help="测试网站的URL")


@pytest.hookimpl(tryfirst=True)
def pytest_sessionfinish(session, exitstatus):
    """测试会话结束后的操作"""
    print(f"\n测试会话结束，状态码: {exitstatus}")


@pytest.fixture(scope="session")
def browser(request):
    """获取命令行中指定的浏览器"""
    return request.config.getoption("--browser")


@pytest.fixture(scope="session")
def headless(request):
    """获取是否使用无头模式"""
    return request.config.getoption("--headless")


@pytest.fixture(scope="session")
def base_url(request):
    """获取测试网站URL"""
    return request.config.getoption("--url") 